package modellag;
import java.util.ArrayList;

/**
 * Haandtere produkt objektet
 * @author Gruppe 1 
 * @version 1.0 2013-10-12
 */
public class Produkt
{
    private static int statiskID;
    private int produktID;
    private String navn, beskrivelse;
    private double pris, rabatPris, indkoebsPris;
    private ProduktKategori kategori;
    private Leverandoer leverandoer;
    private ArrayList<ProduktEksemplar> eksemplar;
    
    /**
     * Constructor for objects of class Produkt
     * @param navn          navn på produktet
     * @param beskrivelse   beskrivelse på produktet
     * @param pris          produktets pris
     * @param rabatPris     hvad produktet koster på rabat
     * @param indkoebsPris  produktets indkoebspris
     * @param leverandoer   hvem der leverer produktet
     */
    public Produkt(String navn, String beskrivelse, double pris, double rabatPris, double indkoebsPris, ProduktKategori kategori,
            Leverandoer leverandoer) 
    {
        statiskID++;
        produktID = statiskID;
        this.navn = navn;
        this.beskrivelse = beskrivelse;
        this.pris = pris;
        this.rabatPris = rabatPris;
        this.indkoebsPris = indkoebsPris;
        this.kategori = kategori;
        this.leverandoer = leverandoer;
        this.eksemplar = eksemplar;
        eksemplar = new ArrayList<ProduktEksemplar>();
    }

        /**
     * @return the produktID
     */
    public int getProduktID() 
    {
        return produktID;
    }

    /**
     * @return the navn
     */
    public String getNavn() 
    {
        return navn;
    }

    /**
     * @param navn the navn to set
     */
    public void setNavn(String navn) 
    {
        this.navn = navn;
    }

    /**
     * @return the beskrivelse
     */
    public String getBeskrivelse() 
    {
        return beskrivelse;
    }

    /**
     * @param beskrivelse the beskrivelse to set
     */
    public void setBeskrivelse(String beskrivelse) 
    {
        this.beskrivelse = beskrivelse;
    }

    /**
     * @return the pris
     */
    public double getPris() 
    {
        return pris;
    }

    /**
     * @param pris the pris to set
     */
    public void setPris(double pris) 
    {
        this.pris = pris;
    }

    /**
     * @return the rabatPris
     */
    public double getRabatPris() 
    {
        return rabatPris;
    }

    /**
     * @param rabatPris the rabatPris to set
     */
    public void setRabatPris(double rabatPris) 
    {
        this.rabatPris = rabatPris;
    }

    /**
     * @return the indkoebsPris
     */
    public double getIndkoebsPris() 
    {
        return indkoebsPris;
    }

    /**
     * @param indkoebsPris the indkoebsPris to set
     */
    public void setIndkoebsPris(double indkoebsPris) 
    {
        this.indkoebsPris = indkoebsPris;
    }

    /**
     * @return the kategori
     */
    public ProduktKategori getKategori() 
    {
        return kategori;
    }

    /**
     * @param kategori the kategori to set
     */
    public void setKategori(ProduktKategori kategori) 
    {
        this.kategori = kategori;
    }

    /**
     * @return the leverandoer
     */
    public Leverandoer getLeverandoer() 
    {
        return leverandoer;
    }

    /**
     * @param leverandoer the leverandoer to set
     */
    public void setLeverandoer(Leverandoer leverandoer) 
    {
        this.leverandoer = leverandoer;
    }

    /**
     * @return ArrayList eksemplar
     */
    public ArrayList eksemplar()
    {
        return eksemplar;
    }
    
    /**
     * @param e eksemplar
     */
    public void tilfoejEksemplar(ProduktEksemplar e)
    {
        eksemplar.add(e);
    }
    
    /**
     * @return ProduktEksemplar objekt
     */
    public ProduktEksemplar hentEksemplar(int index)
    {
        return eksemplar.get(index);
    }
    
    public void sletEksemplar(int index)
    {
    	eksemplar.remove(index);
    }
    
    public static int getStatiskID() 
    {
    	return statiskID;
    }
    
}





